home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 32 / Commodore_Free_Issue_32_2009_Commodore_Computer_Club.d64 / iv vanessa < prev    next >
Text File  |  2023-02-26  |  13KB  |  440 lines

  1.  
  2. *************************************
  3.    Interview with Vanessa Ezekowitz
  4.     Creator of  the Commodore 128 
  5.            Sound studio
  6. *************************************
  7.  
  8. Sound studio 128 version 3.8
  9. http://noname.c64.org/csdb/release/?
  10. id=16382
  11.  
  12. Vanessa Ezekowitz webpage
  13. http://starbase.globalpc.net/{$de}vanessa
  14. /index.html
  15.  
  16. > COMMODORE FREE
  17. > Please introduce yourself to our
  18. readers
  19.  
  20. Hi all, I'm Vanessa Ezekowitz.   I'm
  21. 35, living with my husband Abe in
  22. Joplin, Missouri, and have been
  23. nosing around the C64 scene for about
  24. 23 years now.
  25.  
  26. > CF. Can you tell us a little
  27. history about yourself and your
  28. computing hobby
  29.  
  30. Early on, I had a propensity for
  31. tearing apart my toys (permanently
  32. breaking about half of them in the
  33. process!), just to see what makes
  34. them work. My first computer was
  35. actually a Timex Sinclair 1000, on
  36. which I learned the basics of BASIC,
  37. so to speak.  I typed in programs
  38. from the manuals, hacked around a bit
  39. trying to learn, and otherwise just
  40. kind of tinkered.  I even picked up a
  41. 16K RAM expander for it at one point.
  42. I used it for one or two years, until
  43. Christmas 1986, when I received a
  44. Commodore 64 as a gift.  I took the
  45. C64 up to my bedroom and hooked it up
  46. to a TV.  I realized immediately that
  47. she'd made a good decision, and with
  48. her standing there, I tossed the
  49. TS1000 aside onto the bed; mom wasn't
  50. too pleased with what I said about it
  51. *smile*.  From then on, I spent the
  52. majority of my time parked in front
  53. of that C64, either typing in
  54. programs from magazines, learning to
  55. code, playing games, or trying to
  56. learn how to interface it to the
  57. outside world.  It also served me
  58. well in school for reports and the
  59. like.  I learned to code and hack
  60. around with the hardware because I
  61. wanted to do something productive,
  62. something others might find useful
  63. some day.
  64.  
  65. Today, I spend most of my time
  66. reading, just trying to learn about
  67. general things (especially the
  68. sciences, and in particular,
  69. astronomy and a touch of quantum
  70. physics), and plenty of quality time
  71. with my husband.
  72.  
  73. > CF. Are you still actively using
  74. Commodore machines?
  75.  
  76. I do still hack around on my hardware
  77. now and then, but I'm not as active
  78. as I once was.
  79.  
  80. > CF. Please explain the function of
  81. Sound studio
  82.  
  83. Originally, it was supposed to
  84. strictly be a RIFF/Wave player, since
  85. that file format was so popular in
  86. the PC world at the time.  In fact, I
  87. had originally called it "Waveplay
  88. 128".  As I worked on it, I added
  89. playback for Commodore RAW files, and
  90. changed the name.  I also added a
  91. recording option, based on a gadget I
  92. called "8BSS", itself based on
  93. Russell Prater's "digi0820.sfx"
  94. instructions.   The program operates
  95. in a sort of GUI, formed entirely by
  96. a custom character set, and can be
  97. controlled with a joystick, mouse, or
  98. keyboard.
  99.  
  100. Normally, you just instruct the
  101. program to load a file, after which a
  102. few pieces of information about the
  103. file would be displayed.  You could
  104. then play it as-is or re-save it as a
  105. .RAW file.  Among the information
  106. displayed is the sample rate, which
  107. the program would let you alter.  It
  108. was easy to, for example, record
  109. something and then play it back at
  110. twice the recorded speed, for
  111. chipmunk-like sounds. It only handles
  112. the 8-bit format of RIFF/Wave, but
  113. adding a 16-bit option wouldn't be
  114. very hard.
  115.  
  116. > CF. Sound studio was released as a
  117. 128 only program, was there ever a 64
  118. version planned?
  119.  
  120. Not exactly...  There were already a
  121. few programs for the C64 and 128 that
  122. could do the job, but I felt, at the
  123. time, that they lacked the "polish"
  124. that a good program should have.  REU
  125. support was somewhat lacking -
  126. nothing I had found could handle very
  127. large files, as I recall, so I
  128. started on something to fill the gap.
  129.  
  130. Since my assembly skills were a
  131. little weak, and the C128's BASIC
  132. seemed to be powerful enough to do
  133. the job, I decided to let BASIC
  134. handle the UI and most everything
  135. that wasn't speed critical, and wrote
  136. the re-player routine in machine code.
  137.  
  138. Incidentally, it's also the C128's
  139. BASIC that set the program's limit to
  140. 1MB of storage, since the STASH and
  141. FETCH commands could only accept an
  142. REU "bank" value of less than 16.
  143.  
  144. > CF. I know the software supports 2
  145. Sid chips is this just for stereo
  146. playback?
  147.  
  148. Yep, that's it.
  149.  
  150. > CF. Maybe for the none techy's can
  151. you explain how a Commodore machine
  152. can replay wav files, and also what
  153. wav files are
  154.  
  155. To explain this, I'll need to include
  156. a little audio theory:  Everyone
  157. knows that a sound wave consists of
  158. vibrations in the air.  When those
  159. vibrations strike a microphone, the
  160. receiver it is connected to sees a
  161. small voltage that varies rapidly
  162. with the sound wave, usually at
  163. thousands of variations per second.
  164.  
  165. On virtually every such receiver,
  166. there is another connection that can
  167. send what goes through it to another
  168. device, such as a tape recorder or an
  169. audio sampling device, called a
  170. digitizer.  When instructed to do so
  171. by the controller or user, the
  172. digitizer will start making tens of
  173. thousands of measurements per second
  174. of the varying voltage coming off the
  175. receiver's output, and translate each
  176. measurement into a binary value,
  177. called a sample, that is then sent to
  178. the computer.
  179.  
  180. A RIFF/Wave file is simply a short
  181. header followed by a long train of
  182. those samples.
  183.  
  184. In the simplest case, a C64 or 128
  185. need only read the 44 byte header and
  186. store it somewhere.  Then, just go
  187. into a loop, reading sample bytes and
  188. dividing them by 16.  Store each
  189. result in memory, and keep looping
  190. until the file runs out.   Then, to
  191. play the sound back, simply start
  192. stuffing the converted samples into
  193. the SID volume register at regular
  194. intervals. Some details aside, that's
  195. all there is to it, and that's just
  196. what Sound Studio does.
  197.  
  198. There are higher quality digital
  199. audio methods possible, but I only
  200. knew about the volume register back
  201. then.
  202.  
  203. > Cf. Can you remember some of the
  204. Programming hurdles you had to jump
  205. to enable WAV file playback
  206.  
  207. The biggest problem I had was
  208. learning machine code well enough to
  209. get the re-player itself done.  I had
  210. never before attempted any real
  211. machine code, and had to do so
  212. through the C128's built-in machine
  213. code monitor.  Writing short bits of
  214. code with the monitor isn't too hard,
  215. but anything more than a hundred
  216. lines or so starts to get a little
  217. complicated even today.  I didn't
  218. understand, at the time, just how to
  219. use an assembler, or even what the
  220. difference was between that and the
  221. monitor I was using.
  222.  
  223. The second problem was getting the
  224. whole program to run fast enough.
  225. For example, the part of the BASIC
  226. code that draws the buttons and base
  227. UI seemed a little slow.  Similarly,
  228. the sample player, while fairly
  229. trivial, wasn't as fast as it could
  230. be at first.  I was dead set on
  231. making sure the program could play
  232. back a 44.1 kHz file at full speed,
  233. so I tried to do whatever I could to
  234. trim cycles from the playback loop.
  235.  
  236. As I recall, I was never able to get
  237. the code to run smoothly enough at
  238. the higher sample rates, because I
  239. couldn't seem to get the idea out of
  240. my head that the REU needed to
  241. transfer bytes in large chunks in
  242. order to be efficient enough (at the
  243. time, I was using an 8K transfer
  244. buffer).  I did some experiments
  245. streaming a byte at a time for
  246. maximum smoothness, with the intent
  247. of rewriting the player routine in a
  248. future release.  I don't think I ever
  249. put that code in, as my initial
  250. experiments were only able to muster
  251. about 64 kB/sec, and I needed a
  252. little over 88 kB/sec.
  253.  
  254. > CF. What is the current status of
  255. the software, I believe the software
  256. was sold as shareware is this still
  257. true and if so where would our reader
  258. send the money to?
  259.  
  260. Originally it was shareware, yes.
  261. Today, the program is public domain.
  262.  
  263. > CF. The software utilises 80 column
  264. mode is this just for aesthetics of
  265. screen design?
  266.  
  267. I had three reasons actually.  One,
  268. 80 column mode looks better than 40
  269. column mode for this sort of thing.
  270. Two, I can use 2 MHz mode without
  271. having to argue with the VIC-II.
  272. Three, there just didn't seem to be a
  273. lot of 80 column software out there,
  274. and I felt I should add to that
  275. library if I could.
  276.  
  277. > CF. Does the software support other
  278. hardware like the CMD line of
  279. products?
  280.  
  281. I wrote Sound Studio before I got my
  282. hands on any CMD gear, but it works
  283. fine on the CMD HD.  By extension, it
  284. should work on the FD 2000/4000, in
  285. addition to the usual Commodore 15xx
  286. drives.  CMD's 17xx REU clones work
  287. for memory just like the originals.
  288. The SID Symphony cartridge should
  289. also work for stereo output, though
  290. I've never tried one myself (I've
  291. always used an internal stereo SID
  292. hack).
  293.  
  294. The RAMLink is a special case. It can
  295. act as a normal storage device like
  296. it does with many other programs, so
  297. you can load files from it, but the
  298. memory therein can't be used as
  299. expansion RAM, simply because I wrote
  300. the program before I got a RAMLink.
  301. I.e. the program isn't aware of the
  302. existence of a RAMLink, much less
  303. whether one is present.
  304.  
  305. Now, the Super CPU is a trip --  it's
  306. been a while since I last tested to
  307. see what would happen, but I seem to
  308. recall that it technically does run.
  309. It doesn't crash, that is to say, but
  310. it also doesn't know anything about
  311. the SuperCPU, so it doesn't know how
  312. to adjust its timers to compensate.
  313. Sound files will play about an order
  314. of magnitude faster and higher
  315. pitched than they should -- talk
  316. about a chipmunk effect!
  317.  
  318. > CF. Also is the product now
  319. effectively dead or do you plan any
  320. updates?
  321. And Have you created any other
  322. software for Commodore machines?
  323.  
  324. I can answer these two together - the
  325. program isn't dead, but the update I
  326. have planned for it is still a long
  327. way off.   I'm working off and on, on
  328. an update for an Amiga MOD player I
  329. wrote back in 1999 or so, and my
  330. intention is to include the ability
  331. to play a number of sample formats,
  332. including RIFF/Wave, as well as
  333. modules.  In essence, I want to
  334. combine Sound Studio with the MOD
  335. player, and release the result as a
  336. new program.
  337.  
  338. The updated program is intended to
  339. look and operate just like XMMS, a
  340. now outdated media player for
  341. Linux/Unix systems. I still like how
  342. it works and what it looks like, so I
  343. plan to stick to that. I haven't
  344. figured out yet how I will handle the
  345. record function, maybe just a menu
  346. item that calls forth a simple "Sound
  347. Recorder" dialog.
  348.  
  349. I have also written a handful of
  350. other programs, such as an unreleased
  351. animation player based on the Ohio
  352. Art "Etch-a-Sketch Animator" toy. I
  353. have an update in the works for this,
  354. which I will release. There's also a
  355. VDC demo of sorts that puts text on
  356. the bitmap (with full
  357. background/foreground colour control,
  358. flashing text, etc., which I
  359. originally targeted at terminal
  360. programs that do ANSI emulation), an
  361. 80 column sector editor modelled on
  362. the one found in the
  363. Maverick/Renegade disk utility
  364. package, and a few small programs for
  365. my own use.
  366.  
  367. One project I am particularly proud
  368. of was a Connectix QuickCam interface
  369. and demo/driver program (which I had
  370. a lot of help with).
  371.  
  372. I also experimented with MP3 playback
  373. via an external board, but my initial
  374. efforts did not meet with success. I
  375. still want to revisit this, as others
  376. have made some  progress in this
  377. regard.
  378.  
  379. Most of my efforts today are aimed at
  380. the C64 first, with the C128 firmly
  381. in mind.  I try to make my code able
  382. to run on both machines, with as
  383. little platform-specific code as
  384. possible (i.e. just enough code to
  385. account for 2 MHz mode, 80 column
  386. screen, etc).
  387.  
  388. > CF. Do you still follow the
  389. Commodore scene?
  390.  
  391. I do to an extent, yes.  One of the
  392. most recent things that really caught
  393. my eye was the Vicious SID demo --
  394. the authors of that program
  395. discovered a new way to make sampled
  396. music, and I am very interested in
  397. learning the details of it. As their
  398. re-player routine pretty much blows
  399. my previous efforts out of the water,
  400. I'd like to see if it is possible to
  401. put their method to use in the future.
  402.  
  403. > CF. Have you any other comments you
  404. would like to add
  405.  
  406. I've never been too sure how much
  407. demand there is for the sort of stuff
  408. I do on the C64 and 128, and I've
  409. actually seen some comments here and
  410. there in other venues that basically
  411. say that I'm wasting my time
  412. (comments which I generally
  413. disregard, of course).  It is nice to
  414. know that there is still interest.  I
  415. hope to be able to continue to
  416. contribute well into the future.
  417.  
  418. > CF. Feel free to add any technical
  419. documents or coding slices you feel
  420. would benefit the readers we cater
  421. for beginners to advanced machine
  422. code programmers
  423.  
  424. Due to the nature of the stuff I do,
  425. I can't really think of anything that
  426. would be short and still be useful to
  427. your readers, but I can say that that
  428. which I have already released is good
  429. fodder for review and commentary. I
  430. invite your readers, and anyone else
  431. interested, to look through my code,
  432. comment on it, re-write it, use some
  433. of it in another program, etc.
  434. Whatever software license might seem
  435. to be in place for any given program
  436. (i.e. shareware), I hereby rescind,
  437. as all of my software is public
  438. domain now.
  439.  
  440. =====================================